package 牛客算法篇;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2024-02-21
 * Time:11:10
 */

class ListNode {
    int val;
    ListNode next = null;

    public ListNode(int val) {
        this.val = val;
    }
}

/**
 *
 牛客算法篇:BM1 反转链表
 简单
 通过率：38.57% 时间限制：1秒
 空间限制：256M
 知识点
 链表
 描述
 给定一个单链表的头结点pHead(该头节点是有值的，比如在下图，它的val是1)，长度为n，反转该链表后，返回新链表的表头。
 数据范围： 0≤n≤10000≤n≤1000
 要求：空间复杂度 O(1)O(1) ，时间复杂度 O(n)O(n) 。
 如当输入链表{1,2,3}时，
 经反转后，原链表变为{3,2,1}，所以对应的输出为{3,2,1}。
 以上转换过程如下图所示：
 示例1
 输入：
 {1,2,3}
 返回值：
 {3,2,1}
 */
public class ReverseList {
    public ListNode ReverseList (ListNode head) {
        // write code here
        if (head == null){
            return null;
        }
        ListNode cur = null;
        while (head != null){
            ListNode tmp = head.next;
            head.next = cur;
            cur = head;
            head = tmp;
        }
        return cur;
    }
}
